﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Controller;
using SBS;

namespace GUI
{
    public partial class Faktura : P_DesignParentForm
    {
        public Faktura()
        {
            InitializeComponent();
        }

        private void Faktura_Load(object sender, EventArgs e)
        {
            Vaerksted v = Vaerksted.GetInstance();
            v.Fakturering();
            v.Obog.HentFaktura();

            var liste = from o in v.Obog.Ordrer where (o.Value.Faktureret == false) select new { Ordrenr = o.Key, Kundenr = o.Value.AktuelKunde.Knr, Fornavn = o.Value.AktuelKunde.Fornavn, Efternavn = o.Value.AktuelKunde.Efternavn, Telefon = o.Value.AktuelKunde.TlfNr, Adresse = o.Value.AktuelKunde.Adresse, Postnr = o.Value.AktuelKunde.Postnr, Bynavn = o.Value.AktuelKunde.Bynavn, Email = o.Value.AktuelKunde.Mail };

            UfaktureretOrdreDataGridView.DataSource = liste.ToList();

            var liste2 = from o in v.Obog.Ordrer where (o.Value.Faktureret == true) && (o.Value.Betalt == false) select new { Ordrenr = o.Key, Betalt = o.Value.Betalt, Kundenr = o.Value.AktuelKunde.Knr, Fornavn = o.Value.AktuelKunde.Fornavn, Efternavn = o.Value.AktuelKunde.Efternavn, Telefon = o.Value.AktuelKunde.TlfNr, Adresse = o.Value.AktuelKunde.Adresse, Postnr = o.Value.AktuelKunde.Postnr, Bynavn = o.Value.AktuelKunde.Bynavn, Email = o.Value.AktuelKunde.Mail };

            UbetaltFakturaDataGridView.DataSource = liste2.ToList();

            var liste3 = from o in v.Obog.Ordrer where (o.Value.Betalt == true) orderby o.Value.AktuelKunde.Knr  select new { Ordrenr = o.Key, Kundenr = o.Value.AktuelKunde.Knr, Fornavn = o.Value.AktuelKunde.Fornavn, Efternavn = o.Value.AktuelKunde.Efternavn, Telefon = o.Value.AktuelKunde.TlfNr, Adresse = o.Value.AktuelKunde.Adresse, Postnr = o.Value.AktuelKunde.Postnr, Bynavn = o.Value.AktuelKunde.Bynavn, Email = o.Value.AktuelKunde.Mail };

            BetalteFakturaDataGridView.DataSource = liste3.ToList();

            if (UfaktureretOrdreDataGridView.RowCount == 0)
                UdskrivUfaktureretOrdreBottom.Enabled = false;
            if (UbetaltFakturaDataGridView.RowCount == 0)
                UdskrivAlleUbetalteFakturaButton.Enabled = false;
        }

        private void UdskrivUfaktureretOrdreBottom_Click(object sender, EventArgs e)
        {
            Vaerksted v = Vaerksted.GetInstance();
            v.GemUfaktureretFaktura();
            Faktura_Load(sender, null);
        }

        private void UdskrivAlleUbetalteFakturaButton_Click(object sender, EventArgs e)
        {
            Vaerksted v = Vaerksted.GetInstance();
            v.GemUbetalteFaktura();
            Faktura_Load(sender, null);
        }

        private void UfaktureretOrdreDataGridView_DoubleClick(object sender, EventArgs e)
        {
            Vaerksted v = Vaerksted.GetInstance();
            v.VisFaktura(int.Parse(UfaktureretOrdreDataGridView[0,UfaktureretOrdreDataGridView.CurrentRow.Index].Value.ToString()));
        }

        private void UbetaltFakturaDataGridView_DoubleClick(object sender, EventArgs e)
        {
            Vaerksted v = Vaerksted.GetInstance();
            v.VisFaktura(int.Parse(UbetaltFakturaDataGridView[0, UbetaltFakturaDataGridView.CurrentRow.Index].Value.ToString()));
        }

        private void BetalteFakturaDataGridView_DoubleClick(object sender, EventArgs e)
        {
            Vaerksted v = Vaerksted.GetInstance();
            v.VisFaktura(int.Parse(BetalteFakturaDataGridView[0, BetalteFakturaDataGridView.CurrentRow.Index].Value.ToString()));

        }

        private void FakturaBetalt(object sender, DataGridViewCellMouseEventArgs e)
        {
            if (e.ColumnIndex == 1)
            {
                Vaerksted v = Vaerksted.GetInstance();
                if (v.Obog.OpdaterBetalingsStatus(int.Parse(UbetaltFakturaDataGridView[0, UbetaltFakturaDataGridView.CurrentRow.Index].Value.ToString())))
                    Faktura_Load(sender, null);

                
            }
        }
    }
}
